When selecting a specific server among a group of servers to handle a request and/or a connection, the goal is often to select the server that will provide the best possible service to a client. However, the level of service provided to one client by a server is often quantifiably no worse than that provided to a few more clients. One common algorithm for assigning network connections to servers is minimize the number of connections handled by each server. In this algorithm, the server among a group of eligible servers that is currently handling the least number of network connections is assigned to handle the newest network connection. The least connections algorithm tends to direct client requests to as many servers as possible, in the hope that doing so will provide the best service to the clients by minimizing the number of clients being handled per server. However, the expense of operating a group of servers is often proportional to the number of servers being operated without a significant correlation on the load on each server. Because traditional algorithms such as least connections maximize the number of servers utilized, it is difficult to reduce the number of servers after they are deployed. Additionally by spreading the load to as many servers as possible, benefits of caching at a server are minimized. Therefore, there exists a need for a more effective way to distribute workload among a group of servers.